/*
 * error.c
 *
 *  Created on: 14/10/2013
 *      Author: AXL
 */

#include "error.h"

/**
 * Registra `message` en `stderr`.
 */
void error( const char* message )
{
	fprintf( stderr, "%s\n", message );
}

/**
 * Registra en `stderr` el error correspondiente a `t_error`.
 */
void printError( t_error errCode )
{
	char* errDesc;

	switch ( errCode )
	{
		case ARGS_REQUIRED :
			errDesc = "El comando especificado requiere argumentos.";
			break;

		case INVALID_NUM_ARGS :
			errDesc = "Cantidad de parametros incorrectos para el comando";
			break;

		case INVALID_COMMAND :
			errDesc = "Comando invalido";
			break;

		case FILE_ALREADY_ADDED :
			errDesc =
					"El archivo ya estaba agregado.\nutilice -commit para guardar una nueva version";
			break;

		case FILE_NOT_ADDED :
			errDesc =
					"Antes de realizar una accion, debe incicalizarse la funcionalidad con -add";
			break;

		case COMMIT_FAIL :
			errDesc =
					"Ocurrio un error y el commit no se realizo exitosamente.";
			break;

		case ROLLBACK_FAIL :
			errDesc = "Ocurrio un error al volver a la version indicada.";
			break;

		case INVALID_REV:
			errDesc = "La revision indicada no existe.";
			break;

		case GET_INFO_ERROR:
			errDesc = "Ocurrio un error al intentar recuperar la informacion.";
			break;

		case UNVERSION_FAIL:
			errDesc = "hubo un error al remover la funcionalidad de versionado.";
			break;

		case NO_ERROR :
			return;

		default :
			errDesc = "Error desconocido.";
	}
	error( errDesc );
}
